{"cells":[{"metadata":{"trusted":true},"cell_type":"raw","source":"1️⃣ Classe Personnage\n🔹 Attributs\nnom : nom du personnage (str)\nvie : points de vie (int)\nattaque : points d’attaque (int)\n🔹 Méthodes\n__init__(self, nom, vie, attaque)\nattaquer(self, monstre)\n→ enlève des points de vie au monstre\nest_vivant(self)\n→ retourne True si le personnage a encore de la vie\nafficher(self)\n→ affiche les informations du personnage\n\n2️⃣ Classe Monstre\n🔹 Attributs\ntype : type du monstre (ex : \"Dragon\", \"Zombie\")\nvie : points de vie (int)\nattaque : points d’attaque (int)\n🔹 Méthodes\n__init__(self, type, vie, attaque)\nattaquer(self, personnage)\n→ enlève des points de vie au personnage\nest_vivant(self)\nafficher(self)\n\n3️⃣ Règles du jeu\nUn personnage et un monstre s’attaquent chacun leur tour\nLe combat s’arrête quand l’un des deux n’a plus de vie"},{"metadata":{"trusted":true},"cell_type":"code","source":"import random\n\nclass Personnage:\n def __init__(self, nom, vie, attaque):\n self.nom = nom\n self.vie = vie\n self.attaque = attaque\n \n def attaquer(self, monstre):\n monstre.vie -= self.attaque\n return (\"Vie restante du monstre:\", monstre.vie)\n \n def est_vivant(self):\n if self.vie <= 0:\n return False\n return True\n \n def afficher(self):\n return (\"Nom:\", self.nom, \"/ Vie:\", self.vie, \"/ Attaque:\", self.attaque)\n \n \nclass Monstre:\n def __init__(self, type, vie, attaque):\n self.type = type\n self.vie = vie\n self.attaque = attaque\n \n def attaquer(self, personnage):\n personnage.vie -= self.attaque\n return (\"Vie restante de\", personnage.nom, \":\", personnage.vie)\n \n def est_vivant(self):\n if self.vie <= 0:\n return False\n return True\n \n def afficher(self):\n return (\"Type:\", self.type, \"/ Vie:\", self.vie, \"/ Attaque:\", self.attaque)\n \nPlayer1 = Personnage(\"Thorfinn\", 100, 8)\nMonstre1 = Monstre(\"Gobelin\", 35, 12)\nMonstre2 = Monstre(\"Ogre\", 200, 22)\n\ndef combat(personnage, monstre):\n i = 0\n while personnage.est_vivant() and monstre.est_vivant():\n i += 1\n if i < 100:\n premier = random.randint(0, 1)\n if premier == 1:\n personnage.attaquer(monstre)\n etourdi = random.randint(0, 1)\n if etourdi == 1:\n print(\"Le\", monstre.type, \"est étourdi et n'attaque pas à ce tour.\")\n else:\n monstre.attaquer(personnage)\n else:\n monstre.attaquer(personnage)\n etourdi = random.randint(0, 1)\n if etourdi == 1:\n print(\"Le\", monstre.type, \"a étourdi\", personnage.nom, \"et il ne peut plus attaquer.\")\n else:\n personnage.attaquer(monstre)\n else:\n break\n if personnage.est_vivant():\n return personnage.nom, \"a gagné et\", monstre.type, \"est mort.\", \"Vie restante du survivant:\", personnage.vie\n else:\n return personnage.nom, \"a perdu...\", monstre.type, \"l'a tué.\", \"Vie restante du survivant:\", monstre.vie\n\n\nprint(combat(Player1, Monstre1))\n\nprint(\" \")\nprint(\"_______________________________________________________________________________________________________\")\nprint(\" \")\n\nprint(combat(Player1, Monstre2))\n\n","execution_count":44,"outputs":[{"output_type":"stream","text":"Le Gobelin est étourdi et n'attaque pas à ce tour.\n('Thorfinn', 'a gagné et', 'Gobelin', 'est mort.', 'Vie restante du survivant:', 52)\n \n_______________________________________________________________________________________________________\n \nLe Ogre a étourdi Thorfinn et il ne peut plus attaquer.\nLe Ogre est étourdi et n'attaque pas à ce tour.\n('Thorfinn', 'a perdu...', 'Ogre', \"l'a tué.\", 'Vie restante du survivant:', 176)\n","name":"stdout"}]}],"metadata":{"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"}},"nbformat":4,"nbformat_minor":2}